import copy
names = [["01", "02"], "Tom", "Tony"]
deepcopy = copy.deepcopy(names)  # 深拷贝
names_copy = names.copy()
'''
    浅拷贝: 只有拷贝的是可变对象（列表或者字典）时,并且对象中有复杂子对象（例如列表中的一个子元素是一个列表或者字典）
    改变对象中这个复杂子对象,拷贝后的对象对应数据才会改变
    (其实就是对象中复杂子对象并没有真正拷贝,只是拷贝原来的引用)
'''
names[0].append("03")  # 改变复杂子对象
names[1] = "David"
print(names)
print(deepcopy)  # 深拷贝对于任何对象改变原来值不会影响拷贝的值
print(names_copy)
# 拷贝不可变对象时,拷贝值,即改变原来值不影响拷贝之后的值
str1 = "Jon"
str_copy = copy.copy(str1)
str1 = "侯征"
print(str1)
print(str_copy)
